package com.doit.day01;

import java.sql.*;
import java.util.HashMap;
import java.util.Random;

/*
  用户去mysql数据库中查询数据
  但是我现在想要整一个缓存，来存储用户查过的数据，回头再去查询mysql数据库之前先去缓存中查一下，在不在
  hashmap来当缓存
 */
public class _01_自己写一个low的缓存 {
    public static void main(String[] args) throws SQLException {
        //创建一个非常low的缓存系统
        HashMap<Integer, String> map = new HashMap<>();

        Random random = new Random();
        //获取mysql的连接
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
        //写一个sql
        PreparedStatement pps = conn.prepareStatement("select name from tab where id = ?");
        //查询mysql的数据库
       while (true){
            int id = random.nextInt(100);
            //在查询数据库之前，要先去缓存系统中看一看
           String s = map.get(id);

           if(s == null){
               //缓存中没有数据，就需要在mysql中查询
               pps.setInt(1,id);
               ResultSet resultSet = pps.executeQuery();
               while (resultSet.next()){
                   String name = resultSet.getString("name");
                   System.out.println("id为"+id+"的时候，name是："+name);
                   //mysql中查询过后，一定要将查询的结果往缓存中在存一份
                   map.put(id,name);
               }
           }else {
               System.out.println("id为"+id+"的时候，name是："+s);
           }




       }


    }
}
